clear; close('all'); clc;
addpath '..\common';

fs = 625e6;

iqpath = '.\data\2400_WLAN11BE_BW320M_EHT2x_GI1.6_MCS7_LEN4096Byte\WLAN11BE_BW320M_EHT2x_GI1.6_MCS7_LEN4096Byte.rm';
[in_data, in_info] = rm.rfutils.load_rmarb(iqpath);
in_data = rm.rfutils.resample_iq(in_data, 600e6, fs); % 原输入波形采样率是 600MHz，重采样到 fs
rm.rfsa.spectrum(in_data, fs, true);

%FS = 625 MHz, Burst 0 startIdx 125986, stopIdx 176506
startIdx = 125986;
stopIdx = 176506;
iqpath = '.\data\2400_WLAN11BE_BW320M_EHT2x_GI1.6_MCS7_LEN4096Byte\WLAN11BE_BW320M_EHT2x_GI1.6_MCS7_LEN4096Byte_2400_RF_board.float';
[prefix, ~] = rm.rfutils.load_iq(iqpath, 'float32', 0, startIdx); % 原始的头部前缀
[out_data, out_info] = rm.rfutils.load_iq(iqpath, 'float32', startIdx*8, in_info.SAMPLES); % 输出的 IQ 数据时间比较长，只取一个周期的
rm.rfsa.spectrum(out_data, fs, true);

% 计算频率响应，并补偿输出幅度和相位
[h_freq, out_compensated]  = rm.hcomp.compensate_rf_response(in_data, out_data, 'smoothing_factor', 0.01);
% 绘图
rm.rfsa.spectrum(out_compensated, fs, true);
rm.rfsa.plot_responses(h_freq, fs);

% 把补偿后的输出保存到文件，以便做 EVM 解调
out_compensated = [prefix, out_compensated];
rm.utils.save_complex_interleaved(out_compensated, '.\data\2400_WLAN11BE_BW320M_EHT2x_GI1.6_MCS7_LEN4096Byte\out_compensated.float32')
